/**
 * @version 3.0.5
 * @Author lu-ch
 * @Email webwork.s@qq.com
 * 文档: https://www.quanzhan.co/luch-request/
 * github: https://github.com/lei-mu/luch-request
 * DCloud: http://ext.dcloud.net.cn/plugin?id=392
 * HBuilderX: beat-3.0.4 alpha-3.0.4
 */

import Request from '@/utils/luch-request/index.js'
//本机默认访问地址
// const BASE_URL = 'http://localhost:8081/api'
// const BASE_SOCKET_URL="ws://localhost:8081/WebSocket/"

//运行到手机上测试地址
 const BASE_URL = 'http://124.223.178.102:8081/api'
 const BASE_SOCKET_URL="http://124.223.178.102:8081/WebSocket/"

const BASE_IMG_URL=BASE_URL+"/img"
const getTokenStorage = () => {
    let token = ''
    try {
        token = uni.getStorageSync('token')
    } catch (e) {
    }
    return token
}
const http = new Request()
/* 设置全局配置 */
http.setConfig((config) => {
	config.baseURL=BASE_URL//本地
    config.header = {
        ...config.header,
        // a: 1, // 演示
        // b: 2 // 演示
    }
    return config
})


http.interceptors.request.use((config) => { /* 请求之前拦截器。可以使用async await 做异步操作 */
    config.header = {
        ...config.header,
        // token: getTokenStorage()
		// Authorization:getTokenStorage()
    }
    /*
   if (!token) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
     return Promise.reject(config)
   }
   */
  if(config.custom.auth){
      // console.log(config)
      config.header.Authorization=getTokenStorage();
      // console.log("uni.getStorageSync('token')",uni.getStorageSync('token'))
	  if (!uni.getStorageSync('token')) { // 如果token不存在，return Promise.reject(config) 会取消本次请求
	    return Promise.reject(config)
	  }
  }
    return config
}, (config) => {
    return Promise.reject(config)
})


http.interceptors.response.use(async (response) => {
    //登录过期处理
    // console.log("res",response)
    if(response.data.code===401){
        uni.setStorageSync('token', null);
        uni.setStorageSync('userInfo',null);
        uni.showToast({
            title: '登录已过期，请重新登录',
            icon: 'none'
        });
        //成功后延迟1秒跳转
        setTimeout(() => {
            uni.navigateTo({
                url:"/pages/public/login/login.vue",
                success:res =>{},
                fail:() =>{},
                complete:() => {}
            });
        }, 1500);
    }
    /* 请求之后拦截器。可以使用async await 做异步操作  */
    // if (response.data.code !== 200) { // 服务端返回的状态码不等于200，则reject()
    //   return Promise.reject(response)
    // }
    return response
}, (response) => { // 请求错误做点什么。可以使用async await 做异步操作
    // console.log("response",response)
    return Promise.reject(response)
})

export {
    http,
    BASE_URL,
    BASE_SOCKET_URL,
    BASE_IMG_URL
}
